iT邦幫忙

2022 iThome 鐵人賽

DAY 4
2

UML是一種建立程式模型的圖形語言,可以想像成是帶有語意的圖形記號,圖可以分成兩大類,一種是表達結構用的圖,而另一種是表達行為用的圖形,所有分類如下圖所示。

https://ithelp.ithome.com.tw/upload/images/20220915/20136443PREiA9Rw9T.png

圖片來源: https://cdn.visual-paradigm.com/guide/what-is-uml/02-uml-diagram-types.png

不用緊張,我沒有要一一介紹完所有圖形(介紹完應該鐵人賽就過完一半了XD),這次主要會介紹的是在物件導向中最常用的圖 —— Class Diagram

Class Diagram (類別圖)

首先介紹一下會用到的符號&箭頭定義

- 符號

符號 定義
+(加號) public (公開)
-(減號) private (非公開)
#(加號) protected (保護)

- 箭頭

https://ithelp.ithome.com.tw/upload/images/20220915/20136443NsNR91UFHX.png

簡單判斷的類別圖結構

https://ithelp.ithome.com.tw/upload/images/20220915/201364434scC6ExFz5.png

各種類別關係介紹

- 關聯(Association)

  • 想像成「有」,Student 與 Book 之間有關連,什麼關聯呢,Book類別中擁有 Student 類別,也就是這本書現在的主人是學生,學生相對於書是被引用的,因此箭頭指向學生。

https://ithelp.ithome.com.tw/upload/images/20220915/20136443UOos87AcCn.png

- 依賴(Dependency)

  • 想像成「使用」,學生有一個註冊的方法,需要將課程當作參數帶入,課程相對於學生是被學生所依賴的,否則學生將無法去做課程註冊,也就畢不了業…(QQ)。

https://ithelp.ithome.com.tw/upload/images/20220915/20136443W031y4XJLz.png

- 實現(Realization)

  • 可以參考上篇中第一個的code範例,給予學生規範,繼承自介面。

https://ithelp.ithome.com.tw/upload/images/20220915/201364431k6Ihs6ec0.png

- 繼承(Generalization)

  • 可以參考上篇中第二個的code範例,不同種類的學生繼承自抽象類別。

https://ithelp.ithome.com.tw/upload/images/20220915/20136443gOTdAHCrYm.png

- 組合(Composition)

  • 想像成「擁有」,是強相依關係,如果 Person消失,其他身體部位也會跟著消失,如果沒有 Head,那Person也不可能存活。

https://ithelp.ithome.com.tw/upload/images/20220915/20136443DyRpmX8Uug.png

- 聚合(Aggregation)

  • 想像成「包含」,是弱相依關係,每個動物都可以獨立存在,如果 Lion消失,其他動物不會跟著消失,Zoo 也不會因此被消滅。

https://ithelp.ithome.com.tw/upload/images/20220915/20136443UD88YxdQH3.png


上一篇
【DAY3】什麼是物件導向範型?(下)
下一篇
【DAY5】學設計模式,WHY?
系列文
勇闖秘境!探索物件導向背後的設計模式30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言